, , , ,

Installer Ubuntu avec LVM sur une partition chiffrée via dm-crypt

Introduction

Pourquoi ?

Ce tutoriel décrit une méthode pour améliorer la sécurité de vos données personnelles ou professionnelles, non pas lorsque votre ordinateur est allumé, mais lorsque celui-ci est éteint, dans le cas d'une perte ou d'un vol d'un ordinateur portable, par exemple.

Ne laissez pas votre ordinateur seul avec une session non verrouillée, mais est-ce nécessaire de le rappeler ? :-)

Il faut tenter de rendre le disque dur illisible pour toute personne non-autorisée.
Une phrase de chiffrement "passphrase" sera la seule clef pour y accéder. Il ne faut donc ni la perdre, ni la divulguer.

Comment ?

Cela va chiffrer l'intégralité des données, mises à part celles contenues dans le /boot, en une seule fois, il ne faudra donc qu'une seule fois "montrer patte blanche". Sans la passphrase, Il ne sera pas possible d'accéder aux données utilisateur (/home), aux différents fichiers temporaires (/tmp , swap), ainsi que d'intervenir sur le système.

Le partitionnement automatique avec LVM sur partition chiffrée proposé lors d'une installation via un support alternate utilise la même méthode. C'est la méthode à privilégier.

Pré-requis

Un système puissant sera un plus : le chiffrement logiciel consomme des ressources à chaque accès au disque.

L'effacement total des données est très longue (mais optionnelle).

Booter sur l'alternate

Sauf pour la variante Lubuntu, l'alternate CD n'est plus disponible à partir des versions d'Ubuntu Trusty 14.04. Les spécificités de l'Alternate CD sont maintenant reprises sur les images .iso Desktop d'Ubuntu.
L'outil de partitionnement de l'installateur sur les images .iso Desktop d'Ubuntu recentes ne permet pas d'utiliser LVM. Utilisez l'installeur d'une mini .iso pour pouvoir suivre ce tutoriel

Début de l'installation

Les impressions écran ont été faite à l'aide d'une machine virtuelle ayant démarré sur une iso alternate. En conséquence, l'utilisation de l'espace disque a été revu à la baisse.

Options de partitionnement

Choisir le mode de partitionnement manuel :

Un /boot

2 Go pour un /boot en ext2.
Séparer le /boot va simplifier le démarrage de l'ordinateur, aucune partie de Grub-PC n'étant chiffrée.
Il faut penser à activer le flag "boot" sur cette partition, si grub est placé sur /dev/sda1 et non pas sur /dev/sda, pour le multiboot par exemple.

Une partition qui va contenir tout votre Linux

Le maximum de partitions primaire étant à 4, il est possible de ne pas utiliser de partition étendue, mais une seconde partition primaire. Néanmoins utiliser directement une partition logique dans partition étendue permet de s'assurer de ne pas tomber sur ce maximum de 4, si l'on souhaite ne pas chiffrer de cette manière tout le disque. Par exemple dans le cas d'un multiboot ou d'un espace non chiffré sur le disque.

Si vous souhaitez par la suite ajouter des partitions qui n'utiliseront pas ce système de cryptographie, il faut au préalable créer la partition à chiffrer.

Dm-crypt


LVM

Utilisation des LV

Résultat


Finir l'installation

Mettre grub sur le secteur d'amorçage du disque

Gestion des passphrases

Ajout d'une passphrase

après le 1er reboot vous pourrez rajouter une passphrase qui se mettra dans le premier emplacement (key slot) disponible à l'aide de la commande:

cryptsetup luksAddKey /dev/sda5

Lister les slots

cryptsetup luksDump /dev/sda5

Supprimer une passphrase d'un slot

Dans cet exemple on supprime la clef présente dans le 2ème slot.

cryptsetup luksKillSlot /dev/sda5 2

Entête LUKS

Si l'entête (header) du conteneur LUKS est endommagé, il ne sera plus possible d’accéder aux données.

Sauvegarde de l'entête

Il est donc important de sauvegarder l'entête dans un endroit sur. Le fichier contenant la sauvegarde de l’entête est nommé ici machine-header

cryptsetup luksHeaderBackup --header-backup-file machine-header /dev/sda5

Restauration de l'entête

cryptsetup luksHeaderRestore --header-backup-file machine-header /dev/sda5

Monter la partition manuellement

Il vous faudra bien évidement booter sur un système prenant en charge dm-crypt et LVM.

Un liveCD/USB, tel System rescue ou PartedMagic, qui intègre tous les outils nécessaires pourra se révéler bien utile.

Après avoir démarré, il faut entrer les commandes :

cryptsetup luksOpen /dev/sdaX un_nom_pour_la_partition

Pour monter la partition chiffrée ;

vgscan
vgchange -ay /dev/VG/...

(il n'y aura certainement que votre partition dans ce dossier, activée grâce à vgscan) OU

lvchange -ay /dev/mapper/sdaX_crypt
lvs

Pour activer le lvm ;

mkdir <point_de_montage>
mount /dev/VG/... /<pt_de_montage>

Et vous devriez pouvoir y accéder !

Conclusion

Cette méthode permet de s'assurer un bon niveau de sécurité, même si rien n'est infaillible.

Le chiffrement du seul /home avec ecryptfs comme proposé dans une installation desktop standard ne permet pas d'assurer le même niveau de sécurité même si cela peut constituer une bonne alternative. De la même manière, chiffrer uniquement son /home avec un conteneur LUKS, est possible. Les performances (I/O système) ne seront pas trop dégradées, tout en ayant ses données sécurisées. Mais il faut garder en tête que pourrait transiter dans un espace temporaire ou en swap vos données en clair.

Installer Ubuntu dans un espace sécurisé

Introduction.

Pourquoi.

Le titre du document étant "chiffrer son disque", ce qui suit explique une autre méthode qui n'est pas chiffrer le disque mais chiffrer UBUNTU. Cela permet de ne pas chiffrer la totalité du disque mais seulement la seule partition du disque qui est allouée à ubuntu. Cela a l'avantage de laisser d'autres partitions hors chiffrement pour un accès aisé.

Comment.

L'utilisation d'un conteneur chiffré LUKS assure la sécurité. Cela va chiffrer l'intégralité des données, mises à part celles contenues dans le /boot, en une seule fois, il ne faudra donc qu'une seule fois "montrer patte blanche" au moment du boot. L 'intégralité des répertoires est dans la même partition (/etc /swap /home …..) à l'exception du seul répertoire /boot afin de permettre le démarrage de Ubuntu. C'est le script /boot/…/script/local-top qui vous demandera le mot de passe pour déverrouiller le démarrage de Ubuntu. Ce mot de passe sera d'au minima 6 caractères. Eviter si possible des catactères trop compliqués du style U avec accent circonflexe qu'il faut frapper avec deux touches. Une idée ??? Ne prendre que des caractères compatibles querty/azerty

Pré-requis

Disposer d'un support d'installation de la version 16.04 ou plus récente et booter avec en choisissant le choix "essayer avant d'installer".

Fabriquer la partition qui va servir au boot. Son format peut être EXT2 ou EXT4. Sa taille sera d'au minima 256 Mo afin de permettre la cohabitation de 3 noyaux qui est le strict minima pour un fonctionnement correct. Si possible, mettre 512 Mo pour un peu de sécurité.

Réfléchir à l'existence d'une partition qui contiendrait des données qu'on souhaite laisser publiques.

Fabriquer la partition qui va héberger le logiciel et les données de l'utilisateur sous forme chiffrée. La taille minima est de 5 Go. Le type de partition est sans importance car il sera détruit lors de l'installation. La taille de cette seule partition de ubuntu sera donc maxima.

Installation.

Lancer l'installation en cliquant sur l'icône présente.

Prendre le choix "autre chose".

Sélectionner la partition prévue à cet effet et choisir de la monter comme "volume physique pour chiffrement".

http://pix.toile-libre.org/upload/original/1523212163.png

.

Sélectionner la nouvelle partition qui vient d'être créée sous la structure /dev/mapper et indiquer qu'elle sera au format EXT4 et destinée au point de montage /

Appliquer l'action et laisser du temps (beaucoup ?) pour réalisation…

Sélectionner éventuellement la partition de boot EFI. ( Pour l'instant, le logiciel semble s'en moquer).

Sélectionner la partition prévue pour recevoir la structure de boot et indiquer qu'elle sera au format EXT2 et destinée au point de montage /boot

Dire de faire l'installation.

Rappel: La création d'une partition /home est impossible.

Voir aussi


Contributeurs principaux : Ool